package com.smartbus.bus.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.smartbus.common.annotation.Excel;
import com.smartbus.common.core.domain.BaseEntity;

/**
 * 线路站点关联，定义每条线路经过的站点及其顺序关系对象 route_stations
 * 
 * @author ruoyi
 * @date 2025-09-24
 */
public class RouteStations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID，自增 */
    private Long id;

    /** 线路ID，关联bus_routes表 */
    @Excel(name = "线路ID，关联bus_routes表")
    private Long routeId;

    /** 站点ID，关联bus_stations表 */
    @Excel(name = "站点ID，关联bus_stations表")
    private Long stationId;

    /** 站点在线路中的顺序，从1开始 */
    @Excel(name = "站点在线路中的顺序，从1开始")
    private Long stationOrder;

    /** 距离起点的距离(公里) */
    @Excel(name = "距离起点的距离(公里)")
    private BigDecimal distanceFromStart;

    /** 从起点出发的预估到达时间(分钟) */
    @Excel(name = "从起点出发的预估到达时间(分钟)")
    private Long estimatedArrivalTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRouteId(Long routeId) 
    {
        this.routeId = routeId;
    }

    public Long getRouteId() 
    {
        return routeId;
    }

    public void setStationId(Long stationId) 
    {
        this.stationId = stationId;
    }

    public Long getStationId() 
    {
        return stationId;
    }

    public void setStationOrder(Long stationOrder) 
    {
        this.stationOrder = stationOrder;
    }

    public Long getStationOrder() 
    {
        return stationOrder;
    }

    public void setDistanceFromStart(BigDecimal distanceFromStart) 
    {
        this.distanceFromStart = distanceFromStart;
    }

    public BigDecimal getDistanceFromStart() 
    {
        return distanceFromStart;
    }

    public void setEstimatedArrivalTime(Long estimatedArrivalTime) 
    {
        this.estimatedArrivalTime = estimatedArrivalTime;
    }

    public Long getEstimatedArrivalTime() 
    {
        return estimatedArrivalTime;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("routeId", getRouteId())
            .append("stationId", getStationId())
            .append("stationOrder", getStationOrder())
            .append("distanceFromStart", getDistanceFromStart())
            .append("estimatedArrivalTime", getEstimatedArrivalTime())
            .append("createdAt", getCreatedAt())
            .toString();
    }
}
